package com.awesome.kotlindemo.function.extend

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.SurfaceView
import android.widget.TextView
import com.awesome.common.util.log.ShowLogUtil
import com.awesome.kotlindemo.R

class ExtendActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_extend)

        // 正常调用，加粗字体
        val textView = findViewById<TextView>(R.id.textview)
        textView.paint.isFakeBoldText = true

        //调用扩展函数
        findViewById<TextView>(R.id.textview).isBold()

        // 调用扩展属性
        findViewById<TextView>(R.id.textview).isBolder = false

        val editText = findViewById<TextView>(R.id.edittext)
        // 使用扩展函数解决复写多余的方法
        editText.addTextChangedListener {
            ShowLogUtil.info(it)
        }

        val surfaceView = findViewById<SurfaceView>(R.id.surface_view)
        // 使用扩展函数解决复写多余的方法
        surfaceView.holder.addCallback(surfaceCreated = {
        })
    }

    // 定义扩展函数
    fun TextView.isBold() = this.apply {
        paint.isFakeBoldText = true
    }
    // 定义扩展属性
    var TextView.isBolder: Boolean
        get() {
            return this.paint.isFakeBoldText
        }
        set(value) {
            this.paint.isFakeBoldText = value
        }

}